package com.example.patient.dto.resp;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Author wxy
 * @Date 2021/1/22 11:11
 * @Version 1.0
 */
@Data
@ApiModel(value = "处方信息结算返回体")
public class RxOrderSettlementResp implements Serializable {
    private static final long serialVersionUID = 6539493588503694650L;

    @ApiModelProperty(value = "Address")
    @JSONField(name = "Address")
    private AddressResp Address;
    @ApiModelProperty(value = "Self")
    @JSONField(name = "Self")
    private SelfResp Self;
    @ApiModelProperty(value = "drugList")
    @JSONField(name = "drugList")
    private List<DrugListResp> drugList;
    @ApiModelProperty(value = "DrugPriceSum")
    @JSONField(name = "DrugPriceSum")
    private BigDecimal DrugPriceSum;
    @ApiModelProperty(value = "Freight")
    @JSONField(name = "Freight")
    private BigDecimal Freight;
    @ApiModelProperty(value = "docInfo")
    @JSONField(name = "docInfo")
    private DocInfoResp docInfo;

    @Data
    public static class AddressResp implements Serializable {
        private static final long serialVersionUID = 6948238187692259056L;

        @ApiModelProperty(value = "id")
        @JSONField(name = "ID")
        private Long id;
        @ApiModelProperty(value = "client_id")
        @JSONField(name = "ClientID")
        private Long clientId;
        @ApiModelProperty(value = "cName")
        @JSONField(name = "CName")
        private String cName;
        @ApiModelProperty(value = "cPhone")
        @JSONField(name = "CPhone")
        private String cPhone;
        @ApiModelProperty(value = "cDetail")
        @JSONField(name = "CDetail")
        private String cDetail;
        @ApiModelProperty(value = "cAddress")
        @JSONField(name = "CAddress")
        private String cAddress;
        @ApiModelProperty(value = "defaultBit")
        @JSONField(name = "Default")
        private Boolean defaultBit;
        @ApiModelProperty(value = "area")
        @JSONField(name = "Area")
        private String area;
    }

    @Data
    public static class SelfResp implements Serializable {
        private static final long serialVersionUID = 637679094781583554L;

        @ApiModelProperty(value = "selfAddress")
        @JSONField(name = "SelfAddress")
        private String selfAddress;
        @ApiModelProperty(value = "selfName")
        @JSONField(name = "SelfName")
        private String selfName;
        @ApiModelProperty(value = "ico")
        @JSONField(name = "ICO")
        private String ico;
    }

    @Data
    public static class DrugListResp implements Serializable {
        private static final long serialVersionUID = 1262116809688293168L;

        @ApiModelProperty(value = "drugName")
        @JSONField(name = "DrugName")
        private String drugName;
        @ApiModelProperty(value = "spec")
        @JSONField(name = "Spec")
        private String spec;
        @ApiModelProperty(value = "num")
        @JSONField(name = "Num")
        private Integer num;
        @ApiModelProperty(value = "img")
        @JSONField(name = "Img")
        private String img;
        @ApiModelProperty(value = "price")
        @JSONField(name = "Price")
        private BigDecimal price;
    }

    @Data
    public static class DocInfoResp implements Serializable {
        private static final long serialVersionUID = 7878082154791046146L;

        @ApiModelProperty(value = "name")
        @JSONField(name = "Name")
        private String name;
        @ApiModelProperty(value = "head")
        @JSONField(name = "Head")
        private String head;
        @ApiModelProperty(value = "title")
        @JSONField(name = "Title")
        private String title;
        @ApiModelProperty(value = "depName")
        @JSONField(name = "depName")
        private String depName;
        @ApiModelProperty(value = "dType")
        @JSONField(name = "DType")
        private String dType;
    }
}
